package com.huihuiyun.huihuiyun.server;

import com.huihuiyun.huihuiyun.server.controller.agent.website.*;
import com.huihuiyun.huihuiyun.server.controller.manager.website.*;
import com.huihuiyun.huihuiyun.server.controller.member.client.*;
import com.huihuiyun.huihuiyun.server.controller.seller.website.SellerWebsiteController;
import com.huihuiyun.huihuiyun.server.controller.seller.website.SellerWebsitePointsMallProductController;
import com.huihuiyun.huihuiyun.server.controller.seller.website.SellerWebsiteUniteMallProductController;
import com.huihuiyun.huihuiyun.server.controller.template.website.TemplateWebsiteBookController;
import com.huihuiyun.huihuiyun.server.controller.template.website.TemplateWebsiteController;
import com.huihuiyun.huihuiyun.server.endpoint.SinglePageApplicationController;
import com.huihuiyun.huihuiyun.server.service.*;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;

import javax.ws.rs.ApplicationPath;

@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
    public JerseyConfig() {
        register(HelloService.class);
        register(HhyBookService.class);
        register(SinglePageApplicationController.class);

        register(HhyBookService.class);
        register(HhyMemberShoppingCartService.class);
        register(HhyWalletService.class);
        register(HhyMemberFavouriteService.class);
        register(HhyMemberService.class);
        register(HhySellerService.class);
        register(HhyOrderItemService.class);
        register(HhyOrderService.class);
        register(HhyAdvertisementService.class);
        register(HhyMemberAddressService.class);
        register(HhyAgentService.class);
        register(HhyProductCategoryService.class);
        register(HhyAreaService.class);
        register(HhyProductDetailService.class);
        register(HhyProductService.class);
        register(HhyWalletChangeLogService.class);
        register(HhyTemplateService.class);
        register(HhyManagerService.class);

        register(ManagerWebsiteAdvertisementController.class);
        register(ManagerWebsiteAgentController.class);
        register(ManagerWebsiteAreaController.class);
        register(ManagerWebsiteController.class);
        register(ManagerWebsiteMemberAddressController.class);
        register(ManagerWebsiteMemberController.class);
        register(ManagerWebsiteMemberFavouriteController.class);
        register(ManagerWebsiteMemberShoppingCartController.class);
        register(ManagerWebsitePointsMallOrderController.class);
        register(ManagerWebsitePointsMallProductController.class);
        register(ManagerWebsiteProductCategoryController.class);
        register(ManagerWebsiteSellerController.class);
        register(ManagerWebsiteUniteMallOrderController.class);
        register(ManagerWebsiteUniteMallProductController.class);
        register(ManagerWebsiteWaitingReviewAdvertisementController.class);
        register(ManagerWebsiteWaitingReviewAgentController.class);
        register(ManagerWebsiteWaitingReviewPointsMallProductController.class);
        register(ManagerWebsiteWaitingReviewSellerController.class);
        register(ManagerWebsiteWaitingReviewUniteMallProductController.class);
        register(ManagerWebsiteWaitingReviewWithdrawController.class);
        register(ManagerWebsiteWalletController.class);

        register(AgentWebsiteController.class);

        register(SellerWebsiteController.class);
        register(SellerWebsiteUniteMallProductController.class);
        register(SellerWebsitePointsMallProductController.class);

        register(MemberClientController.class);
        register(MemberClientAdvertisementController.class);
        register(MemberClientAreaController.class);
        register(MemberClientUniteMallController.class);
        register(MemberClientMallController.class);
        register(MemberClientMemberAddressController.class);
        register(MemberClientMemberShoppingCartController.class);
        register(MemberClientOrderController.class);
        register(MemberClientPointsMallController.class);
        register(MemberClientWalletController.class);

        register(TemplateWebsiteController.class);
        register(TemplateWebsiteBookController.class);
    }
}